#!/usr/bin/env python

bld.RECURSE('idl')
bld.RECURSE('../lib/compression')

bld.SAMBA_SUBSYSTEM('NDR_AUDIOSRV',
    source='gen_ndr/ndr_audiosrv.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_AUTH',
    source='gen_ndr/ndr_auth.c ndr/ndr_auth.c',
    public_headers='gen_ndr/auth.h',
    header_path='gen_ndr',
    public_deps='ndr NDR_SECURITY ndr-krb5pac'
    )

bld.SAMBA_SUBSYSTEM('NDR_ATSVC',
    source='gen_ndr/ndr_atsvc.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_NAMED_PIPE_AUTH',
    source='gen_ndr/ndr_named_pipe_auth.c',
    public_deps='ndr NDR_AUTH'
    )

bld.SAMBA_SUBSYSTEM('NDR_DNSSERVER',
    source='gen_ndr/ndr_dnsserver.c ndr/ndr_dnsserver.c',
    public_deps='ndr NDR_DNSP'
    )

bld.SAMBA_SUBSYSTEM('NDR_DNS',
    source='gen_ndr/ndr_dns.c ndr/ndr_dns.c ndr/ndr_dns_utils.c',
    public_deps='ndr NDR_DNSP'
    )

bld.SAMBA_SUBSYSTEM('NDR_DSBACKUP',
    source='gen_ndr/ndr_dsbackup.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_DFS',
    source='gen_ndr/ndr_dfs.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_WINREG',
    source='gen_ndr/ndr_winreg.c',
    public_deps='ndr NDR_SECURITY NDR_LSA'
    )

bld.SAMBA_SUBSYSTEM('NDR_EFS',
    source='gen_ndr/ndr_efs.c',
    public_deps='ndr NDR_SECURITY'
    )

bld.SAMBA_SUBSYSTEM('NDR_ROT',
    source='gen_ndr/ndr_rot.c',
    public_deps='ndr NDR_ORPC'
    )

bld.SAMBA_SUBSYSTEM('NDR_FRSRPC',
    source='ndr/ndr_frsrpc.c gen_ndr/ndr_frsrpc.c',
    public_deps='ndr NDR_FSCC'
    )

bld.SAMBA_SUBSYSTEM('NDR_FRSAPI',
    source='gen_ndr/ndr_frsapi.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_FRSTRANS',
    source='gen_ndr/ndr_frstrans.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_DFSBLOBS',
    source='gen_ndr/ndr_dfsblobs.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_BKUPBLOBS',
	source='ndr/ndr_bkupblobs.c gen_ndr/ndr_bkupblobs.c',
	public_deps='ndr NDR_SECURITY NDR_FSCC'
	)

bld.SAMBA_SUBSYSTEM('NDR_FSCC',
	source='gen_ndr/ndr_fscc.c',
	public_deps='ndr'
	)

bld.SAMBA_SUBSYSTEM('NDR_POLICYAGENT',
    source='gen_ndr/ndr_policyagent.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_UNIXINFO',
    source='gen_ndr/ndr_unixinfo.c',
    public_deps='ndr NDR_SECURITY'
    )

bld.SAMBA_SUBSYSTEM('NDR_SPOOLSS',
    source='gen_ndr/ndr_spoolss.c',
    public_deps='ndr NDR_SPOOLSS_BUF NDR_SECURITY'
    )

bld.SAMBA_SUBSYSTEM('NDR_SPOOLSS_BUF',
    source='ndr/ndr_spoolss_buf.c',
    deps='talloc'
    )

bld.SAMBA_SUBSYSTEM('NDR_WINSPOOL',
    source='gen_ndr/ndr_winspool.c',
    public_deps='ndr NDR_SPOOLSS'
    )

bld.SAMBA_SUBSYSTEM('NDR_PRINTCAP',
    source='gen_ndr/ndr_printcap.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_EPMAPPER',
    source='gen_ndr/ndr_epmapper.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_DBGIDL',
    source='gen_ndr/ndr_dbgidl.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_DSSETUP',
    source='gen_ndr/ndr_dssetup.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_MSGSVC',
    source='gen_ndr/ndr_msgsvc.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_MGMT',
    source='gen_ndr/ndr_mgmt.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_ORPC',
    source='ndr/ndr_orpc.c gen_ndr/ndr_orpc.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_OXIDRESOLVER',
    source='gen_ndr/ndr_oxidresolver.c',
    public_deps='ndr NDR_ORPC'
    )

bld.SAMBA_SUBSYSTEM('NDR_REMACT',
    source='gen_ndr/ndr_remact.c',
    public_deps='ndr NDR_ORPC'
    )

bld.SAMBA_SUBSYSTEM('NDR_DCOM',
    source='gen_ndr/ndr_dcom.c',
    public_deps='ndr NDR_SECURITY NDR_ORPC'
    )

bld.SAMBA_SUBSYSTEM('NDR_WMI',
    source='ndr/ndr_wmi.c gen_ndr/ndr_wmi.c',
    public_deps='ndr NDR_SECURITY NDR_DCOM'
    )

bld.SAMBA_SUBSYSTEM('NDR_WZCSVC',
    source='gen_ndr/ndr_wzcsvc.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_BROWSER',
    source='gen_ndr/ndr_browser.c',
    public_deps='ndr NDR_SRVSVC'
    )

bld.SAMBA_SUBSYSTEM('NDR_W32TIME',
    source='gen_ndr/ndr_w32time.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_SCERPC',
    source='gen_ndr/ndr_scerpc.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_SERVER_ID',
    source='gen_ndr/ndr_server_id.c',
    deps='ndr',
    public_headers='gen_ndr/server_id.h',
    header_path='gen_ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_TRKWKS',
    source='gen_ndr/ndr_trkwks.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_KEYSVC',
    source='gen_ndr/ndr_keysvc.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_RAP',
    source='gen_ndr/ndr_rap.c ndr/ndr_rap.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_IDMAP',
    source='gen_ndr/ndr_idmap.c',
    public_deps='ndr ndr-standard'
    )

bld.SAMBA_SUBSYSTEM('NDR_NOTIFY',
    source='gen_ndr/ndr_notify.c',
    public_deps='ndr ndr-standard NDR_SERVER_ID NDR_FILE_ID'
    )

bld.SAMBA_SUBSYSTEM('NDR_NTLMSSP',
    source='ndr/ndr_ntlmssp.c gen_ndr/ndr_ntlmssp.c',
    public_deps='ndr ndr-standard'
    )

bld.SAMBA_SUBSYSTEM('NDR_NEGOEX',
    source='ndr/ndr_negoex.c gen_ndr/ndr_negoex.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_DNSP',
    source='gen_ndr/ndr_dnsp.c ndr/ndr_dnsp.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_NFS4ACL',
    source='gen_ndr/ndr_nfs4acl.c',
    public_deps='ndr NDR_SECURITY'
    )

bld.SAMBA_SUBSYSTEM('NDR_NTPRINTING',
    source='gen_ndr/ndr_ntprinting.c ndr/ndr_ntprinting.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_SAMR',
    source='gen_ndr/ndr_samr.c',
    public_deps='ndr NDR_SECURITY NDR_LSA'
    )

bld.SAMBA_SUBSYSTEM('NDR_LSA',
    source='gen_ndr/ndr_lsa.c',
    public_deps='ndr NDR_SECURITY'
    )

bld.SAMBA_SUBSYSTEM('NDR_SECURITY',
    source='gen_ndr/ndr_security.c ndr/ndr_sec_helper.c',
    deps='ndr samba-security',
    public_headers='gen_ndr/security.h',
    header_path='gen_ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_SMB_ACL',
    source='gen_ndr/ndr_smb_acl.c',
    deps='ndr',
    )

bld.SAMBA_SUBSYSTEM('NDR_SVCCTL',
    source='gen_ndr/ndr_svcctl.c ndr/ndr_svcctl.c',
    public_deps='ndr NDR_SECURITY'
    )

bld.SAMBA_SUBSYSTEM('NDR_SRVSVC',
    source='gen_ndr/ndr_srvsvc.c',
    public_deps='ndr NDR_SECURITY NDR_SVCCTL'
    )

bld.SAMBA_SUBSYSTEM('NDR_NETLOGON',
    source='gen_ndr/ndr_netlogon.c ndr/ndr_netlogon.c',
    public_deps='ndr NDR_SECURITY NDR_LSA NDR_SAMR ndr_nbt'
    )

bld.SAMBA_SUBSYSTEM('NDR_EVENTLOG',
    source='gen_ndr/ndr_eventlog.c',
    public_deps='ndr NDR_SECURITY NDR_LSA'
    )

bld.SAMBA_SUBSYSTEM('NDR_EVENTLOG6',
    source='gen_ndr/ndr_eventlog6.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_NTSVCS',
    source='gen_ndr/ndr_ntsvcs.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_WKSSVC',
    source='gen_ndr/ndr_wkssvc.c',
    public_deps='ndr NDR_SECURITY NDR_SRVSVC NDR_LSA'
    )

bld.SAMBA_SUBSYSTEM('NDR_ECHO',
    source='gen_ndr/ndr_echo.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_INITSHUTDOWN',
    source='gen_ndr/ndr_initshutdown.c',
    public_deps='ndr NDR_LSA'
    )

bld.SAMBA_SUBSYSTEM('NDR_COMPRESSION',
    source='ndr/ndr_compression.c',
    public_deps='samba-errors ndr',
    deps='z LZXPRESS'
    )

bld.SAMBA_SUBSYSTEM('NDR_FSRVP',
	source='gen_ndr/ndr_fsrvp.c',
	public_deps='ndr'
	)

bld.SAMBA_SUBSYSTEM('NDR_WITNESS',
    source='gen_ndr/ndr_witness.c ndr/ndr_witness.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_CLUSAPI',
    source='gen_ndr/ndr_clusapi.c',
    public_deps='ndr NDR_WINREG'
    )

bld.SAMBA_SUBSYSTEM('NDR_MDSSVC',
    source='gen_ndr/ndr_mdssvc.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_DCERPC',
    source='gen_ndr/ndr_dcerpc.c ndr/ndr_dcerpc.c',
    public_deps='ndr',
    public_headers='gen_ndr/ndr_dcerpc.h gen_ndr/dcerpc.h ndr/ndr_dcerpc.h',
    header_path=[ ('gen_ndr*', 'gen_ndr'), ('ndr*', 'ndr')]
    )

bld.SAMBA_SUBSYSTEM('NDR_DRSUAPI',
    source='ndr/ndr_drsuapi.c gen_ndr/ndr_drsuapi.c',
    public_deps='ndr NDR_COMPRESSION NDR_SECURITY ndr-standard asn1util',
    public_headers='gen_ndr/ndr_drsuapi.h gen_ndr/drsuapi.h ndr/ndr_drsuapi.h',
    header_path=[ ('gen_ndr*', 'gen_ndr'), ('ndr*', 'ndr')]
    )

bld.SAMBA_SUBSYSTEM('NDR_DRSBLOBS',
    source='ndr/ndr_drsblobs.c gen_ndr/ndr_drsblobs.c',
    public_deps='ndr NDR_DRSUAPI',
    public_headers='gen_ndr/ndr_drsblobs.h gen_ndr/drsblobs.h ndr/ndr_drsblobs.h',
    header_path=[ ('gen_ndr*', 'gen_ndr'), ('ndr*', 'ndr')]
    )

bld.SAMBA_SUBSYSTEM('NDR_ODJ',
    source='gen_ndr/ndr_ODJ.c ndr/ndr_ODJ.c',
    public_deps='NDR_LSA NDR_NETLOGON NDR_SECURITY',
    deps='ndr')

bld.SAMBA_SUBSYSTEM('NDR_KRB5PAC',
                    source='',
                    deps='ndr-krb5pac')

bld.SAMBA_LIBRARY('ndr-krb5pac',
    source='ndr/ndr_krb5pac.c gen_ndr/ndr_krb5pac.c',
    public_deps='ndr ndr-standard NDR_SECURITY',
    public_headers='gen_ndr/krb5pac.h gen_ndr/ndr_krb5pac.h ndr/ndr_krb5pac.h',
    header_path=[ ('gen_ndr*', 'gen_ndr'), ('ndr*', 'ndr')],
    pc_files='ndr_krb5pac.pc',
    vnum='0.0.1'
    )

bld.SAMBA_SUBSYSTEM('NDR_KRB5CCACHE',
    source='gen_ndr/ndr_krb5ccache.c',
    deps='ndr NDR_COMPRESSION NDR_SECURITY ndr-standard asn1util'
    )

bld.SAMBA_LIBRARY('ndr-standard',
    source='',
    vnum='0.0.1',
    pc_files='ndr_standard.pc',
    deps='''NDR_SECURITY NDR_LSA NDR_SAMR NDR_NETLOGON
    NDR_EVENTLOG NDR_EVENTLOG6 NDR_DFS
    NDR_NTSVCS NDR_SVCCTL NDR_INITSHUTDOWN NDR_WKSSVC NDR_SRVSVC NDR_WINREG
    NDR_ECHO security NDR_DNS NDR_DNSP NDR_ATSVC NDR_SPOOLSS NDR_DSSETUP
    NDR_SERVER_ID NDR_NOTIFY''',
    public_deps='ndr',
    public_headers='gen_ndr/samr.h gen_ndr/ndr_samr.h gen_ndr/lsa.h gen_ndr/netlogon.h gen_ndr/atsvc.h gen_ndr/ndr_atsvc.h gen_ndr/ndr_svcctl.h gen_ndr/svcctl.h',
    header_path='gen_ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_XATTR',
    source='ndr/ndr_xattr.c gen_ndr/ndr_xattr.c',
    public_deps='ndr NDR_SECURITY'
    )

bld.SAMBA_SUBSYSTEM('NDR_SMB2_LEASE_STRUCT',
    source='gen_ndr/ndr_smb2_lease_struct.c',
    public_deps='ndr',
    public_headers='gen_ndr/smb2_lease_struct.h'
    )

bld.SAMBA_SUBSYSTEM('NDR_QUOTA',
    source='gen_ndr/ndr_quota.c',
    public_deps='ndr',
    )

bld.SAMBA_SUBSYSTEM('NDR_SCHANNEL',
    source='ndr/ndr_schannel.c gen_ndr/ndr_schannel.c',
    public_deps='ndr ndr_nbt'
    )

bld.SAMBA_SUBSYSTEM('NDR_NBT',
                    source='',
                    deps='ndr_nbt')

bld.SAMBA_LIBRARY('ndr_nbt',
    source='gen_ndr/ndr_nbt.c ndr/ndr_nbt.c',
    public_deps='ndr NDR_NBT_BUF NDR_SECURITY NDR_DNS',
    public_headers='gen_ndr/nbt.h gen_ndr/ndr_nbt.h ndr/ndr_nbt.h',
    header_path=[ ('gen_ndr*', 'gen_ndr'), ('ndr*', 'ndr')],
    pc_files='ndr_nbt.pc',
    vnum='0.0.1'
)

bld.SAMBA_SUBSYSTEM('NDR_BACKUPKEY',
    source='ndr/ndr_backupkey.c gen_ndr/ndr_backupkey.c',
    public_deps='ndr NDR_SECURITY'
    )

bld.SAMBA_SUBSYSTEM('NDR_PREG',
    source='gen_ndr/ndr_preg.c ndr/ndr_preg.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_CAB',
    source='''
           gen_ndr/ndr_cab.c
           ndr/ndr_cab.c
           ''',
    public_deps='ndr NDR_COMPRESSION')

bld.SAMBA_SUBSYSTEM('NDR_FILE_ID',
    source='gen_ndr/ndr_file_id.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('NDR_MESSAGING',
    source='gen_ndr/ndr_messaging.c',
    public_deps='ndr NDR_SERVER_ID'
    )

bld.SAMBA_SUBSYSTEM('NDR_WINSTATION',
	source='gen_ndr/ndr_winstation.c',
	public_deps='ndr'
	)

bld.SAMBA_SUBSYSTEM('RPC_NDR_ATSVC',
    source='gen_ndr/ndr_atsvc_c.c',
    public_deps='dcerpc-binding NDR_ATSVC'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_ECHO',
    source='gen_ndr/ndr_echo_c.c',
    public_deps='dcerpc-binding NDR_ECHO'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_LSA',
    source='gen_ndr/ndr_lsa_c.c',
    public_deps='dcerpc-binding ndr-standard'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_SAMR',
    source='gen_ndr/ndr_samr_c.c',
    public_deps='dcerpc-binding NDR_SAMR'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_DFS',
    source='gen_ndr/ndr_dfs_c.c',
    public_deps='dcerpc-binding ndr-standard'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_FRSAPI',
    source='gen_ndr/ndr_frsapi_c.c',
    public_deps='dcerpc-binding NDR_FRSAPI'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_DRSUAPI',
    source='gen_ndr/ndr_drsuapi_c.c',
    public_deps='dcerpc-binding NDR_DRSUAPI'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_UNIXINFO',
    source='gen_ndr/ndr_unixinfo_c.c',
    public_deps='dcerpc-binding NDR_UNIXINFO'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_BROWSER',
    source='gen_ndr/ndr_browser_c.c',
    public_deps='dcerpc-binding NDR_BROWSER'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_SPOOLSS',
    source='gen_ndr/ndr_spoolss_c.c',
    public_deps='dcerpc-binding NDR_SPOOLSS'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_WINSPOOL',
    source='gen_ndr/ndr_winspool_c.c',
    public_deps='dcerpc-binding NDR_WINSPOOL'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_WKSSVC',
    source='gen_ndr/ndr_wkssvc_c.c',
    public_deps='dcerpc-binding ndr-standard'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_SRVSVC',
    source='gen_ndr/ndr_srvsvc_c.c',
    public_deps='dcerpc-binding NDR_SRVSVC'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_SVCCTL',
    source='gen_ndr/ndr_svcctl_c.c',
    public_deps='dcerpc-binding ndr-standard',
    public_headers='gen_ndr/ndr_svcctl_c.h ndr/ndr_svcctl.h',
    header_path=[ ('gen_ndr*', 'gen_ndr'), ('ndr*', 'ndr')]
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_EVENTLOG',
    source='gen_ndr/ndr_eventlog_c.c',
    public_deps='dcerpc-binding ndr-standard'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_EPMAPPER',
    source='gen_ndr/ndr_epmapper_c.c',
    public_deps='tevent NDR_EPMAPPER'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_DSSETUP',
    source='gen_ndr/ndr_dssetup_c.c',
    public_deps='dcerpc-binding NDR_DSSETUP'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_WINREG',
    source='gen_ndr/ndr_winreg_c.c',
    public_deps='dcerpc-binding ndr-standard'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_INITSHUTDOWN',
    source='gen_ndr/ndr_initshutdown_c.c',
    public_deps='dcerpc-binding ndr-standard'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_MGMT',
    source='gen_ndr/ndr_mgmt_c.c',
    deps='tevent NDR_MGMT'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_OXIDRESOLVER',
    source='gen_ndr/ndr_oxidresolver_c.c',
    public_deps='dcerpc-binding NDR_OXIDRESOLVER'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_REMACT',
    source='gen_ndr/ndr_remact_c.c',
    public_deps='dcerpc-binding NDR_REMACT'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_NTSVCS',
    source='gen_ndr/ndr_ntsvcs_c.c',
    public_deps='dcerpc-binding ndr-standard'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_NETLOGON',
    source='gen_ndr/ndr_netlogon_c.c',
    public_deps='ndr-standard tevent'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_BACKUPKEY',
    source='gen_ndr/ndr_backupkey_c.c',
    public_deps='dcerpc-binding NDR_BACKUPKEY'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_DNSSERVER',
    source='gen_ndr/ndr_dnsserver_c.c',
    public_deps='dcerpc-binding ndr-standard'
    )

bld.SAMBA_SUBSYSTEM('NDR_IOCTL',
    source='gen_ndr/ndr_ioctl.c ndr/ndr_ioctl.c',
    public_deps='ndr'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_FSRVP',
	source='gen_ndr/ndr_fsrvp_c.c',
	public_deps='dcerpc-binding NDR_FSRVP'
	)

bld.SAMBA_SUBSYSTEM('RPC_NDR_WITNESS',
    source='gen_ndr/ndr_witness_c.c',
    public_deps='dcerpc-binding NDR_WITNESS'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_CLUSAPI',
    source='gen_ndr/ndr_clusapi_c.c',
    public_deps='dcerpc-binding NDR_CLUSAPI'
    )

bld.SAMBA_SUBSYSTEM('RPC_NDR_MDSSVC',
    source='gen_ndr/ndr_mdssvc_c.c',
    public_deps='dcerpc-binding NDR_MDSSVC'
    )

# a grouping library for NDR subsystems that may be used by more than one target
bld.SAMBA_LIBRARY('ndr-samba',
    source=[],
    deps='''NDR_DRSBLOBS NDR_DRSUAPI NDR_IDMAP NDR_NTLMSSP NDR_NEGOEX NDR_SCHANNEL NDR_MGMT
    NDR_DNSSERVER NDR_EPMAPPER NDR_XATTR NDR_UNIXINFO NDR_NAMED_PIPE_AUTH NDR_DCOM
    NDR_NTPRINTING NDR_FSRVP NDR_WITNESS NDR_MDSSVC NDR_OPEN_FILES NDR_SMBXSRV
    NDR_KRB5CCACHE''',
    private_library=True,
    grouping_library=True
    )

# a grouping library for RPC_NDR subsystems that may be used by more than one target
bld.SAMBA_LIBRARY('dcerpc-samba',
    source='',
    deps='''RPC_NDR_LSA RPC_NDR_SAMR RPC_NDR_NETLOGON RPC_NDR_EVENTLOG
    RPC_NDR_DFS RPC_NDR_NTSVCS RPC_NDR_SVCCTL RPC_NDR_INITSHUTDOWN
    RPC_NDR_WKSSVC RPC_NDR_SRVSVC RPC_NDR_WINREG RPC_NDR_ECHO RPC_NDR_EPMAPPER
    RPC_NDR_ATSVC RPC_NDR_SPOOLSS RPC_NDR_DNSSERVER''',
    public_deps='ndr-standard',
    private_library=True,
    grouping_library=True
    )

bld.SAMBA_SUBSYSTEM('NDR_MISC',
                    source='',
                    deps='ndr')

bld.SAMBA_LIBRARY('ndr',
    source='ndr/ndr_string.c ndr/ndr_basic.c ndr/uuid.c ndr/ndr.c ndr/ndr_misc.c gen_ndr/ndr_misc.c ndr/util.c',
    pc_files='ndr.pc',
    public_deps='samba-errors talloc samba-util util_str_hex',
    public_headers='gen_ndr/misc.h gen_ndr/ndr_misc.h ndr/libndr.h:ndr.h',
    header_path= [('*gen_ndr*', 'gen_ndr')],
    vnum='3.0.0',
    abi_directory='ABI',
    abi_match='!ndr_table_* ndr_* GUID_* _ndr_pull_error* _ndr_push_error*',
    )

bld.SAMBA_LIBRARY('dcerpc-binding',
    source='''
    rpc/dcerpc_error.c
    rpc/binding.c
    rpc/dcerpc_util.c
    rpc/binding_handle.c
    ''',
    deps='ndr tevent NDR_DCERPC LIBTSOCKET tevent-util',
    pc_files=[],
    public_headers='rpc/rpc_common.h',
    vnum='0.0.1')

bld.SAMBA_LIBRARY('dcerpc-pkt-auth',
                  private_library=True,
                  source='''
                   rpc/dcerpc_pkt_auth.c
                   ''',
                  deps='dcerpc-binding gensec')

bld.SAMBA_SUBSYSTEM('DCERPC_SERVER_NETLOGON',
                    source='''
                           rpc/server/netlogon/schannel_util.c
                           ''',
                    deps='''
                         talloc
                         util_str_escape
                         samba-hostconfig
                         NDR_NETLOGON
                         dcerpc-server-core
                         ''')

bld.SAMBA_LIBRARY('dcerpc-server-core',
    source='''
           rpc/dcesrv_core.c
           rpc/dcesrv_auth.c
           rpc/dcesrv_mgmt.c
           rpc/dcesrv_reply.c
           rpc/dcesrv_handles.c
           ''',
    deps='''
    ndr
    dcerpc-binding
    samba-util-core
    gnutls
    GNUTLS_HELPERS
    dcerpc-pkt-auth
    ''',
    pc_files=[],
    public_headers='rpc/dcesrv_core.h',
    autoproto='rpc/dcesrv_core_proto.h',
    vnum='0.0.1')

bld.SAMBA_SUBSYSTEM('DCERPC_HELPER',
                    source='rpc/dcerpc_helper.c',
                    public_deps='''
                                samba-hostconfig
                                samba-security
                                gnutls
                                GNUTLS_HELPERS
                                ''')

bld.SAMBA_SUBSYSTEM('NDR_WINBIND',
	source='gen_ndr/ndr_winbind.c',
	public_deps='ndr NDR_LSA'
	)

bld.SAMBA_SUBSYSTEM('RPC_NDR_WINBIND',
	source='gen_ndr/ndr_winbind_c.c',
	public_deps='dcerpc NDR_WINBIND'
	)

bld.SAMBA_SUBSYSTEM('NDR_FSRVP_STATE',
    source='gen_ndr/ndr_fsrvp_state.c',
    public_deps='ndr'
    )
#
# Cmocka tests
#

bld.SAMBA_BINARY('test_ndr_macros',
                 source='tests/test_ndr_macros.c',
                 deps='''
                      cmocka
                      ndr
                      ''',
                 for_selftest=True)

bld.SAMBA_BINARY('test_ndr_string',
                 source='tests/test_ndr_string.c',
                 deps='''
                      cmocka
                      talloc
                      ndr
                      ''',
                 for_selftest=True)

bld.SAMBA_BINARY('test_ndr',
                 source='tests/test_ndr.c',
                 deps='''
                      cmocka
                      ndr
                      ''',
                 for_selftest=True)

bld.SAMBA_BINARY('test_ndr_dns_nbt',
                 source='tests/test_ndr_dns_nbt.c',
                 deps='''
                      cmocka
                      ndr
                      ndr_nbt
                      ''',
                 for_selftest=True)
